<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
		//~10、10 << 1、10 >> 2 分别等于多少？写出计算思路。
		//否运算（not）：符号为~
		console.log(~10);
		// 这边10的二进制是1010，进行否运算：	
		// 	1. 补满32位：0000 0000 0000 0000 0000 0000 0000 1010
		// 	2. 按位取反：1111 1111 1111 1111 1111 1111 1111 1010
		// 	3. 首位符号位位1表示负数，计算表示的数需要先反码，再+1
		// 	4. 按位取反：0000 0000 0000 0000 0000 0000 0000 1010
		// 	5. 加上1：0000 0000 0000 0000 0000 0000 0000 1011
		// 	6. 最终结果就是：-11
		
	// ------------------------------------------------------
		
		//左移运算（left shift）：符号为<<
		console.log(10<<1);
		// 进行左移一位运算：
		// 	1. 10的二进制是：1010
		// 	2. 左移一位： 10100
		// 	3. 转成十进制：20
		
	// -------------------------------------------------------
		
		//右移运算（right shift）：符号为>>
		console.log(10>>2);
		// 进行右移两位运算：
		// 	1. 10的二进制是：1010
		// 	2. 右移二位：10，后面的10被舍弃了。
		// 	3. 转成十进制：2
		</script>
	</body>
</html>
